Marmot: an optimizing compiler for Java
نویسندگان
چکیده
The Marmot system is a research platform for studying the implementation of high level programming languages. It currently comprises an optimizing native-code compiler, runtime system, and libraries for a large subset of Java. Marmot integrates well-known representation, optimization, code generation, and runtime techniques with a few Java-specific features to achieve competitive performance. This paper contains a description of the Marmot system design, along with highlights of our experience applying and adapting traditional implementation techniques to Java. A detailed performance evaluation assesses both Marmot’s overall performance relative to other Java and C++ implementations and the relative costs of various Java language features in Marmot-compiled code. Our experience with Marmot has demonstrated that well-known compilation techniques can produce very good performance for static Java applications—comparable or superior to other Java systems, and approaching that of C++ in some cases.
منابع مشابه
Title of Thesis: A RETARGETABLE OPTIMIZING JAVA-TO-C COMPILER FOR EMBEDDED SYSTEMS
Title of Thesis: A RETARGETABLE OPTIMIZING JAVA-TO-C COMPILER FOR EMBEDDED SYSTEMS Ankush Varma, M.S., 2003 Thesis directed by: Professor Shuvra S. Bhattacharyya Department of Electrical and Computer Engineering The Java programming language is achieving greater acceptance in high-end embedded systems such as cellphones and PDAs. However, lowend embedded platforms, such as DSPs or microcontroll...
متن کاملUsing the SafeTSA Representation to Boost the Performance of an Existing Java Virtual Machine
High-performance just-in-time compilers for Java need to invest considerable effort before actual code generation can commence. SafeTSA, a typed intermediate representation based on SSA form, was designed to ease this burden, decreasing the time required for dynamic compilation, without sacrificing safety or code quality. We report on our experience integrating support for loading and compiling...
متن کاملTrace Based Compilation in Interpreter-less Execution Environments
Trace based compilation is a technique used in managed language runtimes to detect and compile frequently executed program paths. The goal is reduced compilation time and improved code quality since only “hot” parts of methods are ever compiled. Trace compilation is well suited for interpreter based runtime environments because the control flow of an application program is highly visible and re...
متن کاملTree Form : An Intermediate Representation for Retargetable Optimizing Compilers
Tree form is a low-level, architecture-independent intermediate representation (IR) used by the Flex java-to-hardware compiler. Using a tree-based IR allows for the automatic construction of high-quality code generators for a substantial set of computer architectures, from only the precise specification of these architectures. This paper provides a thorough description of Tree form: its constru...
متن کاملStack Allocating Objects in Java ( Extended Abstract ) ∗
Allocating objects on the stack rather than the heap reduces the overhead of garbage collection and permits further optimizations. This paper presents a simple and fast algorithm for stack allocating a significant fraction of objects for Java programs. Our implementation in an optimizing batch Java compiler demonstrates the benefit of stack allocation by achieving speed improvements of up to 11...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
- Softw., Pract. Exper.
دوره 30 شماره
صفحات -
تاریخ انتشار 2000